User interface control for changing a parameter

ABSTRACT

A user interface comprises a control for adjusting a numeric field value. The control includes controls for editing the numeric field text directly and for dynamically incrementing and decrementing the value. In addition, the control includes controls for combining several functions into one control, allowing for quicker numeric value editing, control of multiple parameters, and taking up less user interface space.

FIELD OF THE INVENTION

This invention relates to controlling a parameter value via userinterface, and more particularly, to a flexible, dynamic slider controlfor controlling parameters in a software application.

BACKGROUND

In a software application environment, user interfaces often contain anumber of controls for manipulating the interface. These may includeseveral different types of controls and sliders for influencing thevalue of various parameters of the interface. One example is a textentry control for directly typing a numeric value into a field of thecontrol. Another example is a control for dynamically incrementing anddecrementing a value by moving a control along a single axis, oftenreferred to as a slider. By moving the slider, the value displayed in aseparate control is dynamically changed. A final example is a key on akeyboard for stepwise incrementing and decrementing a value in a controlat a consistent granularity. By pressing the key, for example an up ordown cursor arrow, the value displayed in a control is changed in astepwise manner.

Conventionally, a single control influences a single parameter.Therefore, if a user desires to effect the same change in more than oneaspect or parameter, the user must separately manipulate the controlsthat correspond to each respective parameter. Traditionally, thecontrols are poorly integrated within the interface, forcing the user toswitch between the various controls and/or perform several steps toachieve a desired result.

Some programs, such as animators' tools and other image manipulatingsystems, may have a large number of controls and may require anextensive amount of numeric entry and direct numeric editing to effecteven minor changes. For example, in an image manipulation application,user interface controls often are provided for manipulating parametersof images or graphic objects. A user may use a trial-and-error processto find the value that creates a desired effect for a particularparameter, trying numerous values in the process. Traditional userinterface controls keep no record of these values. As a result, if auser wants to recall a value previously entered into a particularcontrol, the user must manually keep a record of entered values.

These characteristics of traditional user interface controls increasethe amount of time the user spends entering and editing values. Inaddition, the need for a large number of controls and sliders takes upvaluable user interface space.

SUMMARY OF THE INVENTION

The present invention eliminates the need for the user to switch betweenvarious controls to achieve a desired result. To do this, severalfunctionalities are combined into one control. This combination allowsfor quicker numeric value editing, control of multiple parameters, andprovides for both an input and an output function in a compact space.

In one embodiment, a numerical value displayed in a control can bechanged in several different ways. A value can be entered, the value canbe dynamically incremented or decremented, the value can be stepwiseincremented or decremented, and the value resulting from thesemanipulations can be displayed, all within one on-screen control.

In one embodiment of the present invention includes a function forchanging the granularity with which values are incremented anddecremented. By using various modifier keys while dynamically orstepwise incrementing or decrementing a value, the value displayedincrements or decrements at increased or reduced levels of granularitydepending on the modifier used.

One embodiment allows for user selection of values recently displayed ina control via a contextual menu. In response to a user command, acontextual menu populates with a list of recent values from which theuser can select. The selected value is then displayed in the control.

In one embodiment, the user can manipulate the control without firstclicking on it. In response to a user positioning a pointer over thecontrol for a predetermined length of time, referred to as hovering, thecontrol is ready to respond to manipulations. For example, if a userhovers over the control and scrolls the mouse wheel, the value displayedin the control increases or decreases.

When more than one control is used in an interface, one embodimentallows the values of multiple controls to be changed simultaneously. Forexample, in response to the user selecting two or more controls andmanipulating of one of the selected controls, the values of all selectedcontrols change to reflect the manipulation.

In one embodiment, the user can quickly move from one control toanother. For example, in response to a user hitting a key while a firstcontrol is selected as ready to receive a value, the first control isdeselected and a second control is selected to receive a value.

One embodiment allows the user to drag and drop values form one controlto another. In response to a user selecting a value from a first controland dragging it to a second control, the value from the first controlalso is displayed in the second control.

Some or all of these additional functionalities may be combined in asingle control. The integration of these functionalities allows the userto perform more functions in fewer steps, with less redundancy, and inless time.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an illustration of a user interface in accordance with oneembodiment of the present invention.

FIG. 2A is an illustration of a user interface control in accordancewith one embodiment of the present invention.

FIG. 2B is an illustration of a user interface control with a modifiedpointer/cursor in accordance with one embodiment of the presentinvention.

FIG. 2C is an illustration of a user interface control with a standardcursor in accordance with one embodiment of the present invention

FIG. 3 is an illustration of a user interface control paired with aslider in accordance with one embodiment of the present invention.

FIG. 4 is an illustration of the architecture of a system forimplementing a user interface in accordance with one embodiment of thepresent invention.

The figures depict a preferred embodiment of the present invention forpurposes of illustration only. One skilled in the art will readilyrecognize from the following discussion that alternative embodiments ofthe structures and methods illustrated herein may be employed withoutdeparting from the principles of the invention described herein.

DETAILED DESCRIPTION OF THE EMBODIMENTS

Integrated User Interface

Referring now to FIG. 1, a user interface 10 is shown in accordance withone embodiment of the present invention. The user interface 10 includesan image display area 20, one or more parameters 30, the parameters 30controlled by one or more controls 40 and/or sliders 50.

In one embodiment, the display area 20 includes an image or graphic,such as the photograph displayed in FIG. 1. The image or graphic in thedisplay area 20 may be manipulated using controls 40 a-d and/or sliders50 a-b corresponding with various parameters 30 a-c. A parameter 30 isan aspect of the image or graphic in the image display area 20 subjectto manipulation. In this example, the parameters 30 are Position 30 a,Rotation 30 b, and Blur 30 c. A control 40 manipulates the value of aparameter 30 corresponding with that control 40. For example, Position30 a is controlled by controls 40 a-b. In one embodiment, a slider 50may be used in conjunction with a control 40 to manipulate a parameter30. For example, Rotation 30 b may be manipulated by both control 40 cor slider 50 a. When the user manipulates a parameter 30 using a control40 or slider 50, changes are reflected in the display area 20.

Control Structure

Referring now to FIG. 2, there is shown an illustration of a control 40of a user interface 10 in greater detail in accordance with oneembodiment of the present invention. In addition, there is shown agraphical pointer 205 directable by the user via a graphical controldevice such as a mouse.

With reference to FIG. 2A, the control 40 includes a drag/insertionregion 210, which is in the center of the control 40 and includes a textbox 215 for displaying a numeric value 220. In some embodiments, thecontrol 40 also may comprise two additional regions: a decrementerregion 225, which displays, in this example, a left-pointing arrow; andan incrementer region 230, which displays, in this example, aright-pointing arrow. The dotted lines of FIG. 2A are merely to indicatethe boundaries of the regions 210, 225, 230 and normally would not bevisible to the control 40 user.

Referring now to FIG. 2B, there is shown an illustration of a control 40with a modified pointer/cursor 235 in accordance with one embodiment ofthe present invention. In this example, the control 40 does not includea decrementer 225 or an incrementer 230. The modified pointer/cursor 235is a graphical pointer similar to the graphical pointer 205 of FIG. 2A,with added dragging functionality as described below. In this example,the modified pointer/cursor 235 is shown as a cursor with two arrowspointing in opposite directions and is displayed within thedrag/insertion region 210.

Referring to FIG. 2C, there is shown an illustration of a control 40with a standard cursor 240 in accordance with one embodiment of thepresent invention. The standard cursor 240 is the form that thegraphical pointer 205 of FIG. 2A takes when the drag/insertion region210 is in text edit, or “active” mode. The standard cursor 240 isdisplayed within the text box 215 in the drag/insertion region 210. Thestandard cursor 240 allows the user to type and delete numerals withinthe text box 215, as well as perform standard editing operations such asinsert, copy, cut, and paste. When the standard cursor 240 is and thedrag/insertion region 210 is in text edit mode, the remainder of thecontrol 40 display, including the incrementer region 230 and decrementerregion 225, if any, are displayed as inactive background, shown here asdotted lines. In one embodiment, the remainder of the control 40 isgrayed out. In another embodiment, no change is visible. In oneembodiment, the control 40 also may include the ability to display acontextual menu 245 for various purposes, as will be described ingreater detail below.

The graphical or visual organization and placement of the regions 210,225, 230 in the control 40 of FIG. 2 is merely illustrative and notlimited by the present invention, and variations in the placement, size,and shape of the regions 210, 225, 230 and the control 40 would bereadily apparent to those of skill in the art of user interface design.For example, in a different embodiment the control 40 takes a verticalorientation, with the incrementer region 230 placed above thedrag/insertion region 210 and displaying an upward-pointing arrow, andthe decrementer region 225 placed below the drag/insertion region 210and displaying a downward-pointing arrow. Other configurations also arepossible.

In addition, in some embodiments the control 40 may be accompanied byadditional user interface 10 aspects. For example, the control 40 may bepaired with a traditional slider 50, as depicted in FIG. 3, in order toprovide multiple methods for controlling a particular parameter value220. A slider 50 in its most basic form is a device for manipulating thevalue of a particular parameter 30. The slider 50 includes a control bar305 that moves, in this example horizontally, on a slide bar 310. Asingle interface also may contain multiple controls 40, allowing forcontrol of multiple parameters 30, as shown in FIG. 1. The operation ofthe slider will be discussed below.

Referring now to FIG. 4, it illustrates the architecture of a system 500for implementing a user interface 10 in accordance with one embodimentof the present invention. In such a system, a computer 505 is ofconventional design, and includes a processor, an addressable memory,and other conventional features (not illustrated) such as a display, alocal hard disk, input/output ports, a keyboard, a mouse, and a networkinterface. The user interface 10 is shown on the display. In a preferredembodiment the computer 505 may be implemented on a Macintosh computeroperating under an operating system such as Macintosh OS X, or aSPARC-based computer operating under UNIX, or any other equivalentdevices.

In accordance with the present invention, the computer 505 executes asoftware application 515, which includes a user interface 10 accordingto one embodiment of the present invention. The application 515 includesa number of executable code portions and data files. These include codefor creating and supporting the user interface 10, handling input andgenerating output.

In accordance with the present invention, the application 515 maintainsa data repository 520 for storing information relating to the userinterface 10. The repository 520 may be a conventional databaseaccessible by the application 515 through the user interface 10. Theapplication 515 accesses and queries the repository 520 to retrieve datarecords associated with the user interface 10.

The application 515 may be provided to the client computer 505 oncomputer readable media, such as a CD-ROM, diskette, or by electroniccommunication over the network 510 from software distributors, forinstallation and execution thereon. Alternatively, the application 515and data repository 520 can be hosted on a server computer, and accessedover the network 510 by the user, for example using a browser interfaceto the application 515.

Control Operation

The operation of the control 40 in accordance with one embodiment of thepresent invention will now be described with reference to FIG. 2 andTable 1. In one embodiment, the control 40 combines three separatefunctionalities that effect the numeric value 220 displayed in the textbox 215: dynamic incrementing and decrementing, direct text editing, andstepwise incrementing and decrementing.

TABLE 1 Starting Type of Location Pointer of Pointer Activity of PointerDisplayed Result of Activity Drag/Insertion None Modified None RegionPointer/Cursor Drag/Insertion Click and Drag in a Modified Numeric ValueRegion First Direction Pointer/Cursor Dynamically (User can moveDecrements anywhere on the screen) Drag/Insertion Click & Drag in aModified Numeric Value Region Second Direction Pointer/CursorDynamically (User can move Increments anywhere on the screen) Text BoxSingle Click, Standard Text Box Depress Return Cursor Activated, Key, orDouble Remainder of Click Control Inactive Text Box Single Click, ReturnStandard Numeric Value Key, or Double Cursor Edited Consistent Click andThen With Typing Type Decrementer Single Click Graphical Numeric ValueRegion Pointer Decrements One Step Incrementer Single Click GraphicalNumeric Value Region Pointer Increments One Step

The dynamic incrementing and decrementing functionality of the control40 allows the user to dynamically increase or decrease the numeric value220 displayed in the text box 215 of FIG. 2B. A summary of thisfunctionality is shown in the first three rows of Table 1. As used here,“dynamically” refers to an increase or decrease at a relatively smalllevel of granularity.

To dynamically increase or decrease the numeric value 220, the userfirst moves the graphical pointer 205 to the drag/insertion region 210using a graphical control device such as a mouse. The graphical pointer205 then converts to a modified pointer/cursor 235 as shown in FIG. 2B.The user single clicks within the drag/insertion region 210, holdingdown the click button. The user then moves the mouse, dragging themodified pointer/cursor 210, which results in dynamically increasing ordecreasing the numeric value 220, depending on which direction thecursor 235 is dragged, for example, to the left or to the right. Whenthe user releases the mouse button, the numeric value 220 displayed inthe text box 215 remains displayed and the modified pointer/cursor 235returns to a graphical pointer 205. In one embodiment, dragging within apredetermined distance, referred to herein as a tolerance threshold, hasno effect. Thus, only when the mouse is moved beyond this threshold willthe value 220 dynamically increase. In one embodiment, the tolerancethreshold is three pixels. In one embodiment, the user may modify thetolerance threshold. One embodiment allows the user to drag anywhere onthe display screen, while continuing to control the value 220.

Referring now to FIG. 2B as an example, if the modified pointer-cursor235 is dragged in a first direction (e.g., to the right), the displayednumeric value 220 dynamically increases. Likewise, if the modifiedpointer/cursor 235 is dragged in a second direction (e.g., to the left),the displayed numeric value 220 dynamically decreases. In addition, theacceleration at which the user moves the modified pointer/cursor 235 hasno effect on the scaling, which remains consistent.

In one embodiment, any movement of the modified pointer/cursor 235 alongthe axis perpendicular (shown here as the y-axis 237) to that used tochange the value 220 (shown here as the x-axis 236) is ignored. In theabove example, the axis used to change the value (236) is horizontal(right and left); therefore movement along the vertical axis (237) isignored.

In one embodiment, only movement of the modified pointer/cursor 235along the axis perpendicular (y-axis 237) to that used to change thevalue 220 (x-axis 236) within a predetermined angle, referred to hereinas a tolerance angle 238, is ignored. Movement of the modifiedpointer/cursor 235 along the axis perpendicular (y-axis 237) to thatused to change the value 220 (x-axis 236) exceeding the tolerance angle(238) is recognized as an attempt by the user to drag and drop the value220 into another control 40. Therefore, the system can distinguishbetween the user's (accidental) drifting off in a perpendiculardirection to an attempt to drag and drop the value 220 into anothercontrol 40.

In one embodiment, the granularity of the dynamic incrementing anddecrementing can be modified using a modifier key on a keyboard. Forexample, depressing “Shift” while incrementing or decrementing thenumeric value 220 increases the rate of scaling the numeric value 220tenfold. Other keys also may be used to modify the granularity of thedynamic incrementing and decrementing. In one example, depressing andholding a “Command” key, “Command” and “Shift” keys, or “Command” and“Option” keys while incrementing or decrementing the value 220 causesthe value 220 to change at different rates. In other examples, othermodifier keys may be used to alter the scale of the incrementing ordecrementing, for example, to effect logarithmic scaling. In anotherexample, vertical dragging and horizontal dragging respectively providetwo different rates of value 220 change.

In one embodiment, the amount by which the value 220 can increase ordecrease is theoretically infinite. In this example, the user can modifythe value 220 as described above by dragging anywhere on the computerscreen. Thus, the numeric value 220 will continue to increase ordecrease when the modified pointer/cursor 235 reaches the edge of theuser's computer screen. In another embodiment, the amount that thenumeric value 220 increases or decreases is constrained within somepredetermined range, which is generally an expected range for theassociated functionality. In one embodiment, the user can set theminimum and/or maximum value of the useful range by activating acontextual menu 245, for example, by clicking and holding on thedecrementer 225 or incrementer 230, if any. Alternatively, thecontextual menu may be activated by other mechanisms, such as byclicking and holding in the drag/insertion region 210 to the left(minimum) or right (maximum) of the text box 220; or by clicking whileholding down a modifier key; or by right-clicking.

The direct text editing functionality of the control 40 allows the userto change the numeric value 220 displayed in the text box 215 of FIG. 2Cby directly editing the text therein. A summary of this functionality isdisplayed in the two rows of Table 1 in which the starting location ofthe pointer is the text box. To edit the numeric value 220 directly, theuser first activates the region by moving the graphical pointer 205using a graphical control device such as a mouse to the drag/insertionregion 210 and, single- or double-clicking within the region 210.Alternatively, the user can activate the region 210 at anytime bydepressing the Return or Enter key on a standard keyboard. In oneembodiment, depressing Return or Enter activates the top control 40 ofthe interface. In one embodiment, depressing Return or Enter activatesthe control 40 most recently used. A standard cursor 240 is thendisplayed in the text box 215. In one embodiment, the remainder of thecontrol 40 is made temporarily inactive, e.g., grayed out, shown in FIG.2C as dotted lines. The user directly edits the numeric value 220 bytyping on the keyboard. Using FIG. 2C as an example, if the user nexttyped the numeral six (6), the numeric value 220 displayed (2.5) changesto 2.56.

In addition, the user can use standard edit functions within the textbox 215, such as “cut,” “copy,” and “paste,” or by selecting functionsfrom a standard tool bar, such as “undo.” If the user attempts to enteran invalid character into the text box 215, for example a letter insteadof a number, an error indication occurs, such as a beep.

In one embodiment, the user can insert both positive and negative valuesin the text box 215. If the user depresses the “Delete” or “Backspace”button when the text box 215 is in active mode but no text has beenentered/replaced, then the entire numeric value 220 will be deleted anda minimum or default value will be displayed. If the user depresses theDelete or Backspace button once editing has commenced, only thecharacter in the position directly to the left of the standard cursor240 will be removed. If a user depresses a right or left cursor buttonon the keyboard, the cursor 240 will move right or left one digit. If auser clicks outside of the text box 215 or depresses the Return key orthe Tab key, the numeric value 220 is set, the text box 215 is taken outof active mode, and the remainder of the control 40 is again active.

In one example, when the text box 215 is active, the user can depressthe Command key with the cursor keys (up, down, left, right) to changethe value 215 displayed. Combining these keys with a modifier key, asdiscussed above, will allow different size increment and decrementsteps. In some embodiments, the use of cursor keys to increment ordecrement value is the default behavior, and thus does not requiredepressing Command to effect a change in the value 220.

In one embodiment, the user can use arithmetic functions to changedisplayed the numeric value 220. For example, if the user wants tomultiply the numeric value 220 displayed, for example 2.5 in FIG. 2C, bya factor of five (5), the user can type asterisk five (*5) and thenumeric display 220 would change, in this example to 12.5, to reflectthe entry. In this example, the system has the ability to distinguishbetween entering a negative value into the text box 215, for example“−2” (no space between), from the arithmetic function “− 2” (spacebetween minus sign and numeral two).

In one embodiment, the user may Tab through the values 220 of thecontrols 40 for various parameters 30. Referring now to FIG. 1 as anexample, if the user is in text edit mode in the text box 215 of control40 b, and presses the Tab button, the text box 215 of control 40 cbecomes active. The user can then edit the value 220 of control 40 c.When the user is finished, the Tab button can again be depressed to setthe value 220 of control 40 c and Tab to control 40 d.

The control 40 also provides functionality for increasing or decreasingthe numeric value 220 displayed in the text box 215 of FIG. 2A in astepwise manner. A summary of this functionality is displayed in thelast two rows of Table 1. To decrease the numeric value 220, the usermoves the graphical pointer 205 to the decrementer region 225 and, usinga graphical control device such as a mouse, single clicks within theregion. As a result, the numeric value 220 displayed decreases by somepredetermined amount, referred to herein as a step. Using FIG. 2A as anexample, the numeric value 220 displayed (1.00) decrements to 0.99.Likewise, to increase the numeric value 220, the user moves thegraphical pointer 205 to the incrementer region 230 and single clickswithin the region. As a result, the numeric value 220 displayedincreases one step. Using FIG. 2A as an example, the numeric value 220displayed (1.00) increments to 1.01. Subsequent clicks in the regionswould continue to increment and decrement, respectively, the numericvalue 220 displayed in a stepwise manner. In one embodiment, holdingdown the mouse button while the cursor is positioned on the incrementer230 or decrementer 225 continues to step the value up or down,respectively.

In one embodiment, the granularity of the steps used to increment anddecrement the numeric value 220 can be modified using a key on akeyboard. For example, by depressing the “Shift” key on a standardkeyboard before clicking on the incrementer 230 or decrementer 225, theincrement or decrement step multiplies tenfold. Again using FIG. 2A asan example, depressing Shift and clicking the incrementer 230 wouldincrease the numeric value 220 displayed (1.00) to 1.10. In addition,other keys might be used to modify the granularity of the increment anddecrement steps. For example, depressing the “Option” key in conjunctionwith the incrementer 230 or decrementer 225 multiples the increment ordecrement step by a factor of 0.01. In other examples, other modifierkeys may be used to alter the increment or decrement step size, forexample, to effect logarithmic scaling.

In one embodiment, the user can access recent values that have beendisplayed in the text box 215. The user can activate a contextual menu245, for example by right-clicking the mouse over the text box 215, asshown in FIG. 3. Once selected, the menu pops up or drops down todisplay the recent values for the text box 215. Then, the user canselect a recent value to populate the text box 215 with that value.

One embodiment of the control 40 allows the user to change the value 220by changing the current mouse position. The user moves the graphicalpointer and pauses over a control without clicking (an action known ashovering) and the control becomes highlighted without the need to clickon that control. For example, the user could hover the graphical pointer205 over the text box 215 and use the mouse wheel to increase ordecrease the value 220 displayed, without the need to first click on thedesired control. For example, if the user hovers the graphical pointer205 over the text box 215 without clicking on it and scrolls the mousewheel up, the value 220 increments as a result. In addition, the usercould hover the graphical pointer 205 over the text box 215 and typeinto the text box 215 without first clicking on the text box 215.However, the user would need to click and drag to dramatically incrementor decrement the value as described above.

Referring now to FIG. 3, there is shown an illustration of a control 40paired with a slider 50 in accordance with one embodiment of the presentinvention. In this example, the control 40 and the slider 50 eachcontrol the parameter 30. The control 40 functionality described abovein conjunction with FIG. 2 is supplemented by slider 50 functionality,in which a control bar 305 moves, horizontally in this example, across aslide bar 310. The movement of the slider 50 changes the numeric value220 displayed in the text box 215 of the control 40. For example, bysliding the control bar 305 of the slider 50 in a first direction (e.g.,to the right) on the slide bar 310, the value 220 displayed in the textbox 215 of the corresponding control 40 increases. Likewise, by changingthe value 220 using the control 40, the position of the control bar 305on the slide bar 310 of the slider 50 moves accordingly. The combinedcontrol 40 and slider 50 allow the user more options for changing thevalue 220 of the parameter.

Referring again to FIG. 1, there is shown an illustration of fourcontrols controlling three different parameters in accordance with oneembodiment of the present invention. In this embodiment, a singleinterface 10 contains multiple controls 40 for control of multipleparameters 30. In this example, each parameter 30 can be controlledseparately as described above. In addition, two or more parameters 30can be controlled simultaneously to affect changes in the numeric value220 of each, referred to herein as parameter ganging. To gang two ormore parameters 30, the user selects/highlights a first parameter 50,for example, Position 30 a, then clicks on a modifier key, such as theShift key, and then selects/highlights one or more additional parameters30, for example Blur 30 c. Then, when the value 220 of one of theselected parameters, for example Blur 30 c increments up, the value 220displayed in the text boxes 215 for all selected parameters 30 (herePosition and Blur) increment up simultaneously. In this example, theparameters 30 can be ganged even if the parameters 30 control dissimilaraspects of the image.

In addition, the user can drag and drop values 220 from one control 40to another. For example, if the user wishes to make the value of control40 a (27.00) the same as the value of control 40 c (20.00), the user canclick in the text box 215 of control 40 c and then drag and drop thevalue into the text box 215 of control 40 a. As discussed above, onlymovement that exceeds the tolerance angle 238 is recognized as anattempt by the user to drag and drop the value 220 into another control40. Therefore, the system can distinguish between the user's(accidental) drifting off in a perpendicular direction to an attempt todrag and drop the value 220 into another control 40.

The present invention has been described in particular detail withrespect to one possible embodiment. Those of skill in the art willappreciate that the invention may be practiced in other embodiments.First, the particular naming of the components, capitalization of terms,the attributes, data structures, or any other programming or structuralaspect is not mandatory or significant, and the mechanisms thatimplement the invention or its features may have different names,formats, or protocols. Further, the system may be implemented via acombination of hardware and software, as described, or entirely inhardware elements. Also, the particular division of functionalitybetween the various system components described herein is merelyexemplary, and not mandatory; functions performed by a single systemcomponent may instead be performed by multiple components, and functionsperformed by multiple components may instead performed by a singlecomponent.

Some portions of above description present the features of the presentinvention in terms of algorithms and symbolic representations ofoperations on information. These algorithmic descriptions andrepresentations are the means used by those skilled in the dataprocessing arts to most effectively convey the substance of their workto others skilled in the art. These operations, while describedfunctionally or logically, are understood to be implemented by computerprograms. Furthermore, it has also proven convenient at times, to referto these arrangements of operations as modules or by functional names,without loss of generality.

Unless specifically stated otherwise as apparent from the abovediscussion, it is appreciated that throughout the description,discussions utilizing terms such as “processing” or “computing” or“calculating” or “determining” or “displaying” or the like, refer to theaction and processes of a computer system, or similar electroniccomputing device, that manipulates and transforms data represented asphysical (electronic) quantities within the computer system memories orregisters or other such information storage, transmission or displaydevices.

Certain aspects of the present invention include process steps andinstructions described herein in the form of an algorithm. It should benoted that the process steps and instructions of the present inventioncould be embodied in software, firmware or hardware, and when embodiedin software, could be downloaded to reside on and be operated fromdifferent platforms used by real time network operating systems.

The present invention also relates to an apparatus for performing theoperations herein. This apparatus may be specially constructed for therequired purposes, or it may comprise a general-purpose computerselectively activated or reconfigured by a computer program stored on acomputer readable medium that can be accessed by the computer. Such acomputer program may be stored in a computer readable storage medium,such as, but is not limited to, any type of disk including floppy disks,optical disks, CD-ROMs, magnetic-optical disks, read-only memories(ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic oroptical cards, application specific integrated circuits (ASICs), or anytype of media suitable for storing electronic instructions, and eachcoupled to a computer system bus. Furthermore, the computers referred toin the specification may include a single processor or may bearchitectures employing multiple processor designs for increasedcomputing capability.

The algorithms and operations presented herein are not inherentlyrelated to any particular computer or other apparatus. Variousgeneral-purpose systems may also be used with programs in accordancewith the teachings herein, or it may prove convenient to construct morespecialized apparatus to perform the required method steps. The requiredstructure for a variety of these systems will be apparent to those ofskill in the, along with equivalent variations. In addition, the presentinvention is not described with reference to any particular programminglanguage. It is appreciated that a variety of programming languages maybe used to implement the teachings of the present invention as describedherein, and any references to specific languages are provided fordisclosure of enablement and best mode of the present invention.

The present invention is well suited to a wide variety of computernetwork systems over numerous topologies. Within this field, theconfiguration and management of large networks comprise storage devicesand computers that are communicatively coupled to dissimilar computersand storage devices over a network, such as the Internet.

Finally, it should be noted that the language used in the specificationhas been principally selected for readability and instructionalpurposes, and may not have been selected to delineate or circumscribethe inventive subject matter. Accordingly, the disclosure of the presentinvention is intended to be illustrative, but not limiting, of the scopeof the invention, which is set forth in the following claims.

1. A method of receiving user input for changing a parameter via agraphical user interface, the method comprising: displaying a controlcomprising a drag region, an incrementer region, and a decrementerregion, the drag region comprising a text box displaying a value for theparameter; in response to receiving user input positioning a graphicalpointer within the text box, clicking, and keying in a value, changingthe value of the parameter; in response to receiving user input placingthe graphical pointer within the drag region, clicking, and dragging thegraphical pointer in a first direction, dynamically incrementing thevalue of the parameter; in response to receiving user input placing thegraphical pointer within the drag region, clicking, and dragging thegraphical pointer in a second direction, dynamically decrementing thevalue of the parameter; in response to receiving user input placing thegraphical pointer within the incrementer region and clicking,incrementing the value of the parameter; and in response to receivinguser input placing the graphical pointer within the decrementer regionand clicking, decrementing the value of the parameter.
 2. A method ofreceiving user input for changing a parameter via a graphical userinterface, the method comprising: displaying a control comprising a dragregion, the drag region comprising a text box displaying a value for theparameter; in response to receiving user input positioning a graphicalpointer within the text box, clicking, and keying in a value, changingthe value of the parameter; in response to receiving user input placingthe graphical pointer within the drag region, clicking, and dragging thegraphical pointer in a first direction, dynamically incrementing thevalue of the parameter; in response to receiving user input placing thegraphical pointer within the drag region, clicking, and dragging thegraphical pointer in a second direction, dynamically decrementing thevalue of the parameter; and in response to a user command for displayingrecent values, displaying a contextual menu of recent values.
 3. Themethod of claim 2, wherein the user command for displaying recent valuesis a click and hold.
 4. The method of claim 2, wherein the user commandfor displaying recent values is a right click.
 5. The method of claim 2,wherein the user command for displaying recent values is a clickcombined with a modifier key.
 6. A method of receiving user input forchanging a parameter via a graphical user interface, the methodcomprising: displaying a control comprising a drag region, the dragregion comprising a text box displaying a value for the parameter; inresponse to receiving user input positioning a graphical pointer withinthe text box, clicking, and keying in a value, changing the value of theparameter; in response to receiving user input placing the graphicalpointer within the drag region, clicking, and dragging the graphicalpointer in a first direction, dynamically incrementing the value of theparameter at a first rate; in response to receiving user input placingthe graphical pointer within the drag region, clicking, and dragging thegraphical pointer in a second direction, dynamically decrementing thevalue of the parameter at the first rate; in response to receiving userinput placing the graphical pointer within the drag region, clicking,and dragging the graphical pointer a third direction, dynamicallyincrementing the numeric value at a second rate; in response toreceiving user input placing the graphical pointer within the dragregion, clicking, and dragging the graphical pointer in a fourthdirection, dynamically decrementing the numeric value at the secondrate.
 7. A method of receiving user input for changing a parameter via agraphical user interface, the method comprising: displaying a firstcontrol comprising a drag region, the drag region comprising a text boxdisplaying a value for the parameter; in response to receiving userinput positioning a graphical pointer within the text box, clicking, andkeying in a value, changing the value of the parameter; in response toreceiving user input placing the graphical pointer within the dragregion, clicking, and dragging the graphical pointer along a first axis,dynamically changing the value of the parameter; and in response toreceiving user input placing the graphical pointer within the dragregion, clicking, and dragging the graphical pointer along a secondaxis, recognizing the input as an attempt by the user to drag and dropthe value into a second control.
 8. The method of claim 7, wherein therecognizing the input occurs only when the dragging the graphicalpointer along the second axis exceeds a tolerance angle from the firstaxis.
 9. A method of receiving user input for changing a parameter via agraphical user interface, the method comprising: displaying a controlcomprising a drag region, the drag region comprising a text boxdisplaying a value for the parameter; in response to receiving userinput hovering a graphical pointer over the text box and keying in avalue, changing the value of the parameter; in response to receivinguser input hovering the graphical pointer over the drag region anddragging the graphical pointer in a first direction, dynamicallyincrementing the value of the parameter; in response to receiving userinput hovering the graphical pointer over the drag region and draggingthe graphical pointer in a second direction, dynamically decrementingthe value of the parameter; in response to receiving user input hoveringthe graphical pointer over the drag region and scrolling a mouse wheelin a first wheel direction, dynamically incrementing the value of theparameter; and in response to receiving user input hovering thegraphical pointer over the drag region and scrolling a mouse wheel in asecond wheel direction, dynamically decrementing the value of theparameter.
 10. A method of receiving user input for changing a parametervia a graphical user interface, the method comprising: displaying acontrol comprising a drag region, the drag region comprising a text boxdisplaying a value for the parameter; in response to receiving userinput positioning a graphical pointer within the text box, clicking, andkeying in a value, changing the value of the parameter; in response toreceiving user input placing the graphical pointer within the dragregion, clicking, and dragging the graphical pointer in a firstdirection, dynamically incrementing the value of the parameter; inresponse to receiving user input placing the graphical pointer withinthe drag region, clicking, and dragging the graphical pointer in asecond direction, dynamically decrementing the value of the parameter;in response to receiving user input placing the graphical pointer withinthe drag region to a first side of the text box and a user command fordisplaying boundaries, displaying a contextual menu to select a upperboundary for the value; and in response to receiving user input placingthe graphical pointer within the drag region to a second side of thetext box and user command for displaying boundaries, displaying acontextual menu to select a lower boundary for the value.
 11. The methodof claim 10, wherein the user command for displaying boundaries is aclick and hold.
 12. The method of claim 10, wherein the user command fordisplaying boundaries is a right click.
 13. The method of claim 10,wherein the user command for displaying boundaries is a click combinedwith a modifier key.
 14. A method of receiving user input for changingparameters via a graphical user interface, the method comprising:displaying first and second controls, each control comprising a dragregion, each drag region comprising a text box displaying a value for aparameter; in response to receiving user selection of at least twocontrols, simultaneously activating the at least two controls; inresponse to receiving user input dragging one of the at least twocontrols, simultaneously changing the parameters values corresponding tothe at least two controls.
 15. The method of claim 14, furthercomprising: in response to receiving user input positioning a graphicalpointer within the text box of one of the at least two controls,clicking, and keying in a value, changing the value of the at least twocontrols.
 16. A computer program product for receiving user input forchanging a parameter via a graphical user interface, the computerprogram product embodied on a tangible computer readable storage mediumcomprising: a software portion configured to display a controlcomprising a drag region, an incrementer region, and a decrementerregion, the drag region comprising a text box displaying a value for theparameter; a software portion configured to change the value of theparameter in response to receiving user input positioning a graphicalpointer within the text box, clicking, and keying in a value; a softwareportion configured to dynamically increment the value of the parameterin response to receiving user input placing the graphical pointer withinthe drag region, clicking, and dragging the graphical pointer in a firstdirection; a software portion configured to dynamically decrement thevalue of the parameter in response to receiving user input placing thegraphical pointer within the drag region, clicking, and dragging thegraphical pointer in a second direction; a software portion configuredto increment the value of the parameter in response to receiving userinput placing the graphical pointer within the incrementer region andclicking; and a software portion configured to decrement the value ofthe parameter in response to receiving user input placing the graphicalpointer within the decrementer region and clicking.
 17. A computerprogram product for receiving user input for changing a parameter via agraphical user interface, the computer program product embodied on atangible computer readable storage medium comprising: a software portionconfigured to display a first control comprising a drag region, the dragregion comprising a text box displaying a value for the parameter; asoftware portion configured to change the value of the parameter inresponse to receiving user input positioning a graphical pointer withinthe text box, clicking, and keying in a value; a software portionconfigured to dynamically change the value of the parameter in responseto receiving user input placing the graphical pointer within the dragregion, clicking, and dragging the graphical pointer along a first axis;and a software portion configured to recognize an attempt by the user todrag and drop the value into a second control in response to receivinguser input placing the graphical pointer within the drag region,clicking, and dragging the graphical pointer along a second axis. 18.The computer program product of claim 17, wherein the software portionconfigured to recognize an attempt by the user to drag and drop thevalue into second control recognizes only drags of the graphical pointeralong the second axis greater than a tolerance angle from the firstaxis.
 19. A computer program product for receiving user input forchanging parameters via a graphical user interface, the computer programproduct embodied on a tangible computer readable storage mediumcomprising: a software portion configured to display first and secondcontrols, each control comprising a drag region, each drag regioncomprising a text box displaying a value for a parameter; a softwareportion configured simultaneously to activate at least two controls inresponse to receiving user selection of at the least two controls; asoftware portion configured to simultaneously change the parametervalues corresponding to the at least two controls in response toreceiving user input dragging one of the at least two controls.
 20. Thecomputer program product of claim 19, further comprising: a softwareportion configured to change the value of the at least two controls inresponse to receiving user input positioning a graphical pointer withinthe text box of one of the at least two controls, clicking, and keyingin a value.
 21. A system for receiving user input for changing aparameter via a graphical user interface, comprising: a software portionconfigured to display a control comprising a drag region, an incrementerregion, and a decrementer region, the drag region comprising a text boxdisplaying a value for the parameter; a software portion configured tochange the value of the parameter in response to receiving user inputpositioning a graphical pointer within the text box, clicking, andkeying in a value; a software portion configured to dynamicallyincrement the value of the parameter in response to receiving user inputplacing the graphical pointer within the drag region, clicking, anddragging the graphical pointer in a first direction; a software portionconfigured to dynamically decrement the value of the parameter inresponse to receiving user input placing the graphical pointer withinthe drag region, clicking, and dragging the graphical pointer in asecond direction; a software portion configured to increment the valueof the parameter in response to receiving user input placing thegraphical pointer within the incrementer region and clicking; a softwareportion configured to decrement the value of the parameter in responseto receiving user input placing the graphical pointer within thedecrementer region and clicking; wherein the software portions areembodied on a tangible computer readable storage medium.
 22. A systemfor receiving user input for changing a parameter via a graphical userinterface, comprising: a software portion configured to display a firstcontrol comprising a drag region, the drag region comprising a text boxdisplaying a value for the parameter; a software portion configured tochange the value of the parameter in response to receiving user inputpositioning a graphical pointer within the text box, clicking, andkeying in a value; a software portion configured to dynamically changethe value of the parameter in response to receiving user input placingthe graphical pointer within the drag region, clicking, and dragging thegraphical pointer along a first axis; a software portion configured torecognize an attempt by the user to drag and drop the value into asecond control in response to receiving user input placing the graphicalpointer within the drag region, clicking, and dragging the graphicalpointer along a second axis; wherein the software portions are embodiedon a tangible computer readable storage medium.
 23. The system of claim22, wherein the software portion configured to recognize an attempt bythe user to drag and drop the value into second control recognizes onlydrags of the graphical pointer along the second axis greater than atolerance angle from the first axis.
 24. A system for receiving userinput for changing parameters via a graphical user interface,comprising: a software portion configured to display first and secondcontrols, each control comprising a drag region, each drag regioncomprising a text box displaying a value for a parameter; a softwareportion configured simultaneously to activate at least two controls inresponse to receiving user selection of at the least two controls; asoftware portion configured to simultaneously change the parametervalues corresponding to the at least two controls in response toreceiving user input dragging one of the at least two controls; whereinthe software portions are embodied on a tangible computer readablestorage medium.
 25. The system of claim 24, further comprising: asoftware portion configured to change the value of the at least twocontrols in response to receiving user input positioning a graphicalpointer within the text box of one of the at least two controls,clicking, and keying in a value.
 26. A system for receiving user inputfor changing a parameter via a graphical user interface, comprising:means for displaying a control comprising a drag region, an incrementerregion, and a decrementer region, the drag region comprising a text boxdisplaying a value for the parameter; means for changing the value ofthe parameter in response to receiving user input positioning agraphical pointer within the text box, clicking, and keying in a value;means for dynamically incrementing the value of the parameter inresponse to receiving user input placing the graphical pointer withinthe drag region, clicking, and dragging the graphical pointer in a firstdirection; means for dynamically decrementing the value of the parameterin response to receiving user input placing the graphical pointer withinthe drag region, clicking, and dragging the graphical pointer in asecond direction; means for incrementing the value of the parameter inresponse to receiving user input placing the graphical pointer withinthe incrementer region and clicking; and means for decrementing thevalue of the parameter in response to receiving user input placing thegraphical pointer within the decrementer region and clicking.
 27. Asystem for receiving user input for changing a parameter via a graphicaluser interface, comprising: means for displaying a first controlcomprising a drag region, the drag region comprising a text boxdisplaying a value for the parameter; means for changing the value ofthe parameter in response to receiving user input positioning agraphical pointer within the text box, clicking, and keying in a value;means for dynamically changing the value of the parameter in response toreceiving user input placing the graphical pointer within the dragregion, clicking, and dragging the graphical pointer along a first axis;and means for recognizing an attempt by the user to drag and drop thevalue into a second control in response to receiving user input placingthe graphical pointer within the drag region, clicking, and dragging thegraphical pointer along a second axis.
 28. The system of claim 27,wherein the means for recognizing an attempt by the user to drag anddrop the value into second control recognizes only drags of thegraphical pointer along the second axis greater than a tolerance anglefrom the first axis.
 29. A system for receiving user input for changingparameters via a graphical user interface, comprising: means fordisplaying first and second controls, each control comprising a dragregion, each drag region comprising a text box displaying a value for aparameter; means for simultaneously activating at least two controls inresponse to receiving user selection of at the least two controls; meansfor simultaneously changing the parameter values corresponding to the atleast two controls in response to receiving user input dragging one ofthe at least two controls.
 30. The system of claim 29, furthercomprising: means for changing the value of the at least two controls inresponse to receiving user input positioning a graphical pointer withinthe text box of one of the at least two controls, clicking, and keyingin a value.